package note_002;
import java.io.*;
public class day05 {
    public static void main(String[] args) throws FileNotFoundException, UnsupportedEncodingException {
        /** 字符流 */
        /** 转换流: InputStreamReader 和 OutputStreamWriter */
        //吧java对象的字节 转换为 字符
        /*
            字符流也提供了read方法用来读取字符
            int read()
            读取一个字符，返回的int值实际上内容是一个char(占2个字节)。如果返回的int对应
            的整数 是-1则表示流读取到了末尾.
            (d=isr.read())!= -1
         */
        /** 缓冲字符流 */
        /** PrintWriter 具有自动行刷新的缓冲字符输出流 */
        /*1.自动换刷新 2.换行写出字符串*/
        //是具有自动行刷新的缓冲字符输出流，内部总是链接BufferedWriter作为缓冲
        //加速功能，其提供了直接按行写出字符串的相关操作。写字符串更方便.

        /*       PrintWriter pws = new PrintWriter(obs, true ); 相遇有pws.flush();
        在流链接中创建PrintWriter时，构造方法允许我们在传入一个boolean型参数，该值为true
        时当前PW就具有自动行刷新功能，即:每当我们调用 println 方法时会自动 flush.
        注意:print
            方法写出后不会自动flush.
         */
        /** 缓冲字符流:
         * BufferedWriter 和 BufferedReader */
        //1.数据加速2.读取字符串
        //缓冲字符流内部也有一个数组(字符数组)，将读写操作同一转换为块读来保证字符的效率。
        /*
            缓冲字符输入流提供的读一行字符串的操作:
            String readLine():
            该方法会链接读取若干字符，当读取到换行符停止，并将之前的内容以一个字符串形式返回。
            如果此行仅有 行符 ,则返回空字符串.即:""
            如果读取到了流的末尾,则返回值为 null.
            (line=bsr.readLine())!=null
         */


        /**
         * ReadStringDemo类查看练习
         */
        /** String(byte[] data,int offset,int len, String ,String charsetName) */
        /*
            Sting 提供了构造方法可以将一个字节数组还原为字符串
            String(byte[] data,int offset,int len, String ,String charsetName)
            将给定的字节数组data中从下标offset处开始的连续len个字节指定的字符集转换为字符串.
         */

        /**
         * java.io.ByteArrayOutputStream
         * 一个低级的字节输出流，内部维护一个字节数组，通过这个流写出的字节全部保存在内部数组中.
         */
/*
单例模式
 */



    }
}
